package com.subject.shuati.domain.service;

import com.subject.shuati.common.entity.PageResult;
import com.subject.shuati.domain.entity.SubjectLikedBo;

/**
 * 题目点赞表 领域service
 *
 * @author jingdianjichi
 * @since 2024-01-07 23:08:45
 */
public interface SubjectLikedDomainService {

    /**
     * 添加 题目点赞表 信息
     */
    void add(SubjectLikedBo subjectLikedBO);

    /**
     * 获取当前是否被点赞过
     */
    Boolean isLiked(String subjectId, String userId);

    /**
     * 获取点赞数量
     */
    Integer getLikedCount(String subjectId);

    /**
     * 更新 题目点赞表 信息
     */
    Boolean update(SubjectLikedBo subjectLikedBO);

    /**
     * 删除 题目点赞表 信息
     */
    Boolean delete(SubjectLikedBo subjectLikedBO);

    /**
     * redis的hash扫描同步点赞数据
     */
    void syncLiked();

    PageResult<SubjectLikedBo> getSubjectLikedPage(SubjectLikedBo subjectLikedBO);
    /**
     * 消费点赞消息
     */
    void syncLikedByMsg(SubjectLikedBo subjectLikedBO);

}
